/*
 * 程序改错—1（4分）
 */

#include <stdio.h>

int main() {
	setbuf(stdout, NULL);

	int x, y, z;

	for (x = 0; x <= 20; x++) {
		for (y = 0; y <= 33; y++) {
			z = 100 - x - y;
			if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
				printf("x=%d, y=%d, z=%d\n", x, y, z);
			}
		}
	}

	return 0;
}

//review: 本题源程序的错误在于两层循环中的条件判断中的“z / 3”。因为C语言认为两个整型相除，即代表取商。如果遇到除不尽的小数，就自动舍去了。所以，本来应该有除不尽的小数，但是因为被舍弃了，所以造成比正确结果多了几个。
//thinking: 在进行条件判断是否百元百鸡之前，先判断z是否可被3整除。如果条件成立，再判断百元百鸡。否则，就触发C语言条件判断的熔断机制，直接进入下轮循环。
